package com.aistar.service.employer;

import com.aistar.model.dto.employer.ResumeAndDeliveryDTO;
import com.aistar.model.entity.Resume;

import java.util.Date;
import java.util.List;

/**
 * @ClassName: IEmployerResumeService
 * @author: LiuWenXiu
 * @date: 2021/9/27 9:59
 * @Description: TODO...
 */
public interface IEmployerResumeService {

    // 加载简历广场的内容
    List<Resume> loadResumeCenter(Integer employerId);

    /**
     * 分页加载简历的内容
     *
     * @param page  当前页
     * @param limit 每页的大小
     * @return
     */
    List<Resume> loadResumeCenterPage(Integer employerId, Integer page, Integer limit);

    /**
     * 根据招聘者id分页简历
     *
     * @param id     招聘者id
     * @param page   当前页面
     * @param limit  页面大小
     * @param status 简历状态
     * @return
     */
    List<ResumeAndDeliveryDTO> loadResumeByPage(Integer id, Integer page, Integer limit, String status);

    /**
     * 多条件查询简历
     * @param id 招聘者id
     * @param page 页数
     * @param limit 条数
     * @param status 状态
     * @param getDay 时间
     * @return
     */
    List<ResumeAndDeliveryDTO> loadResumeByPageAndTime(Integer id, Integer page, Integer limit, String status,Integer getDay);

    /**
     * 根据招聘者id加载不同状态的简历
     *
     * @param status 简历状态
     * @param id     招聘者id
     * @return
     */
    List<ResumeAndDeliveryDTO> loadResumeAll(Integer id, String status);


    /**
     * 根据条件查询所有简历
     * @param id 招聘者id
     * @param status 简历状态
     * @param getDay 时间
     * @return
     */
    List<ResumeAndDeliveryDTO> loadResumeAllByTime(Integer id,String status,Integer getDay);

    /**
     * 根据时间筛选简历集合
     * @param resumeAndDeliveryDTOList 简历集合
     * @param getDay 时间
     * @return
     */
    List<ResumeAndDeliveryDTO> loadByTime(List<ResumeAndDeliveryDTO> resumeAndDeliveryDTOList,Integer getDay);


    /**
     * 根据职位id分页简历
     *
     * @param id     招聘者id
     * @param page   当前页面
     * @param limit  页面大小
     * @param status 简历状态
     * @return
     */
    List<ResumeAndDeliveryDTO> loadResumeByRecruitmentIdPage(Integer id, Integer page, Integer limit, String status);

    /**
     * 根据职位id加载简历
     * @param id
     * @param page
     * @param limit
     * @param status
     * @param getDay 时间
     * @return
     */
    List<ResumeAndDeliveryDTO> loadResumeByRecruitmentIdPageAndTime(Integer id, Integer page, Integer limit, String status,Integer getDay);


    /**
     * 根据职位id加载不同状态的简历
     *
     * @param status 简历状态
     * @param id     招聘者id
     * @return
     */
    List<ResumeAndDeliveryDTO> loadResumeByRecruitmentIdAll(Integer id, String status);


    /**
     * 根据职位id加载不同状态的简历
     * @param id
     * @param status
     * @param getDay
     * @return
     */
    List<ResumeAndDeliveryDTO> loadResumeByRecruitmentIdAllAndTime(Integer id, String status,Integer getDay);

    /**
     * 根据id修改简历状态
     *
     * @param id
     * @param status
     * @return
     */
    int updateResumeStatus(Integer id, String status);

    /**
     * 根据id删除简历投递
     *
     * @param id 简历投递id
     * @return
     */
    int delResumeDelivery(Integer id);


    /**
     * 根据简历投递记录id数组逻辑删除投递记录
     *
     * @param ids 多个简历投递记录
     * @return 返回受影响行数
     */
    int delRecruitmentBatchById(String ids);


    /**
     * 根据简历投递记录id,面试时间和面试地点创建面试邀约
     *
     * @param deliveryId       简历投递id
     * @param interviewTime    面试时间
     * @param interviewAddress 面试地点
     * @return
     */
//    int createInterview(Integer deliveryId, Date interviewTime, String interviewAddress);

    /**
     * 根据简历id,招聘者id,查看时间实现简历查看功能
     *
     * @param resumeId   简历id
     * @param employerId 招聘者id
     * @param viewTime   查看时间
     * @return
     */
    int resumeView(Integer resumeId, Integer employerId, Date viewTime);


}
